@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion

echo [信息] 开始测试流程...

:: 检查并设置虚拟环境
if not exist venv (
    echo [信息] 创建虚拟环境...
    python -m venv venv
    if errorlevel 1 (
        echo [错误] 创建虚拟环境失败
        pause
        exit /b 1
    )
)

:: 激活虚拟环境并安装依赖
echo [信息] 安装依赖...
call venv\Scripts\activate.bat
python -m pip install --upgrade pip
python -m pip install fastapi==0.95.2 uvicorn==0.22.0 requests==2.31.0 pydantic==1.10.7
if exist requirements.txt (
    python -m pip install -r requirements.txt
)

:: 验证依赖安装
echo [信息] 验证依赖安装...
python -c "import fastapi; import uvicorn; import requests; import pydantic" 2>nul
if errorlevel 1 (
    echo [错误] 依赖安装失败，请检查错误信息
    pause
    exit /b 1
)

:: 检查 Ollama 服务
echo [信息] 检查 Ollama 服务...
curl -s http://localhost:11434/api/tags > nul 2>&1
if errorlevel 1 (
    echo [信息] 启动 Ollama 服务...
    start /B ollama serve
    echo [信息] 等待 Ollama 服务启动...
    timeout /t 10 /nobreak > nul
)

:: 检查智能代理服务
echo [信息] 检查智能代理服务...
curl -s http://localhost:8000/v1/model/status > nul 2>&1
if errorlevel 1 (
    echo [信息] 启动智能代理服务...
    start /B cmd /c "venv\Scripts\python.exe run_agent.py"
    echo [信息] 等待服务启动...
    timeout /t 10 /nobreak > nul
)

:: 运行测试
echo [信息] 运行测试...
python test_flow.py
set TEST_RESULT=%errorlevel%

:: 检查测试结果
if %TEST_RESULT% equ 0 (
    echo.
    echo [成功] 测试通过！
    echo 系统运行正常。
) else (
    echo.
    echo [错误] 测试失败！
    echo 请检查日志了解详细信息。
)

:: 询问是否停止服务
echo.
set /p STOP_SERVICE=是否停止服务？(Y/N): 
if /i "!STOP_SERVICE!"=="Y" (
    echo [信息] 正在停止服务...
    taskkill /F /IM python.exe /FI "WINDOWTITLE eq run_agent.py" > nul 2>&1
    taskkill /F /IM ollama.exe > nul 2>&1
    echo [信息] 服务已停止
)

pause
exit /b %TEST_RESULT% 